package  
{
	import flash.display.Shape;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	/**
	 * Raquette
	 * @author Jean-Marie PETIT@hsh
	 */
	public class Raquette extends Shape 
	{
		private var _mur:Mur;
		private var _maxPx:int;
		private var _minPx:int=0;
		private var _posY:int;
		private var _lg:int;
		private var _ht:int;
		public function Raquette(mur:Mur) 
		{
			_mur = mur;
			_mur.addChild(this);
			tailler(60, 16);
			placer(_maxPx / 2, _mur.ht);
			lancerJoueur();
		}
		
		public function tailler(largeur:int, hauteur:int=18):void
		{
			_lg = largeur;
			_ht = hauteur;
			_maxPx = _mur.lg - _lg;
			graphics.clear();
			new Degrade(graphics, _lg, _ht, _ht, [0xFFFFFF, 0x999999, 0x0], [1, 1, 1], [0, 64, 255]);
		}
		
		public function lancerJoueur():void 
		{
			stage.addEventListener(MouseEvent.MOUSE_MOVE, _suivreSouris)
		}
		
		public function stopperJoueur():void 
		{
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, _suivreSouris)
		}
		
		public function lancerAutomate():void
		{
			addEventListener(Event.ENTER_FRAME, _suivreBalle);
		}
		
		public function stopperAutomate():void
		{
			removeEventListener(Event.ENTER_FRAME, _suivreBalle);
		}
		
		public function placer(px:int, py:int):void
		{
			x = px;
			y = py;			
		}
		
		private function _suivreSouris(e:MouseEvent):void
		{
			x = Math.min(Math.max(stage.mouseX - 35, _minPx), _maxPx);
		}
		
		private function _suivreBalle(e:Event):void
		{
			x = Math.min(Math.max(_mur.balle.x - 35, _minPx), _maxPx);
		}
		
		public function get lg():int 
		{
			return _lg;
		}
	}
}